Para realizar esta tarea se utilizan los conjuntos de datos registrados sobre la presencia de orquídeas (familia Orchidaceae) y las áreas silvestres protegidas (ASP) de Costa Rica.
library(sf)
library(leaflet)
library(leaflet.extras)
library(leafem)
library(dplyr)
library(raster)
Cargar la capa sobre los registros de orquídeas en Costa Rica.
# Carga de la capa de orquídeas (familia Orchidaceae)
orquideas <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/gbif/orchidaceae-cr-registros.csv",
options = c(
"X_POSSIBLE_NAMES=decimalLongitude",
"Y_POSSIBLE_NAMES=decimalLatitude"
),
quiet = TRUE
)
st_crs(orquideas) <- 4326
Cargar la capa sobre los registros de las áreas silvestres protegidas en Costa Rica.
# Carga de la capa de áreas silvestres protegidas (ASP)
asp <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/sinac/asp/asp-wgs84.geojson",
quiet = TRUE
)
st_crs(asp) <- 4326
cat("cantidad original de registros: ", nrow(orquideas))
## cantidad original de registros: 29863
Eliminar los registros con un valor de incertidumbre en la ubicación mayor a 1000 m.
# Descartar registros con alta incertidumbre
orquideas <-
orquideas %>%
filter(coordinateUncertaintyInMeters <= 1000)
Eliminar los registros con valor vacío o NA en el campo de la especie.
# Eliminar vacios y NA
orquideas <-
orquideas %>%
filter(!is.na(species) & species != "")
En el conjunto de datos de ASP, eliminar los registros que presenten valor de “Area Marina de Manejo” o “Area marina protegida”.
# Eliminar los registros que presenten valor de “Area Marina de Manejo” o “Area marina protegida”
asp_terrestres <-
asp %>%
filter(descripcio != "Area Marina de Manejo") %>%
filter(descripcio != "Area marina protegida") %>%
st_transform(crs = 4326)
cat("Cantidad de registros despues de realizar los cambios: ", nrow(orquideas))
## Cantidad de registros despues de realizar los cambios: 20926
Creación de un conjunto de datos con la cantidad de especies por área silvestre protegida.
# Conjunto de datos de especies por asp
asp_especies <-
asp_terrestres %>%
st_join(orquideas) %>%
group_by(nombre_asp) %>%
summarize(especies = n_distinct(species, na.rm = TRUE))
Crear una paleta con la coloración adecuada.
# Paleta de colores
colores_especies <-
colorNumeric(
palette = "Reds",
domain = asp_especies$especies,
na.color = "transparent"
)
Crear un mapa leaflet para visualizar el resultado.
# Mapa Leaflet
leaflet() %>%
addTiles(group = "OpenStreetMap") %>%
addPolygons(
data = asp_especies,
fillColor = ~ colores_especies(asp_especies$especies),
fillOpacity = 0.7,
stroke = TRUE,
color = "black",
weight = 1,
popup = paste(
paste(
"<strong>Area silvestre protegida:</strong>",
asp_especies$nombre_asp
),
paste(
"<strong>Cantidad de especies registradas:</strong>",
asp_especies$especies
),
sep = '<br/>'
),
group = "Especies por asp"
) %>%
addCircleMarkers(
data = orquideas,
stroke = F,
radius = 2,
fillColor = 'red',
fillOpacity = 0.6,
popup = paste(
orquideas$species,
orquideas$family
),
clusterOptions = markerClusterOptions(),
group = "Orquídeas"
) %>%
addLayersControl(baseGroups = c("OpenStreetMap"),
overlayGroups = c("Especies por asp", "Orquídeas")) %>%
addLegend(
position = "bottomleft",
pal = colores_especies,
values = asp_especies$especies,
group = "Especies por asp",
title = "Cantidad de especies"
) %>%
addResetMapButton() %>%
addMouseCoordinates()